]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
layout: Don't use reparent
authorJasper St. Pierre <jstpierre@mecheye.net>
Wed, 13 Feb 2013 17:30:26 +0000 (12:30 -0500)
committerJasper St. Pierre <jstpierre@mecheye.net>
Thu, 14 Feb 2013 18:24:04 +0000 (13:24 -0500)
reparent() defines the new actor stacking order based on the
existing depth of the actor, which is flat out wrong. Simply
remove the actor from its old parent and add the new one in.

https://bugzilla.gnome.org/show_bug.cgi?id=633620

js/ui/layout.js

index 4dc3f61562a9ed26dfa6a4ca862a23652d1dfa15..3a240e0c347d3c5e591f63ca1548da62b1bfb23c 100644 (file)
@@ -151,7 +151,8 @@ const LayoutManager = new Lang.Class({
                             [alloc.min_size, alloc.natural_size] = [height, height];
                         });
 
-        global.window_group.reparent(this.uiGroup);
+        global.stage.remove_actor(global.window_group);
+        this.uiGroup.add_actor(global.window_group);
 
         // Now, you might wonder why we went through all the hoops to implement
         // the GDM greeter inside an X11 compositor, to do this at the end...
@@ -160,7 +161,9 @@ const LayoutManager = new Lang.Class({
         if (Main.sessionMode.isGreeter)
             global.window_group.hide();
 
-        global.overlay_group.reparent(this.uiGroup);
+        global.stage.remove_actor(global.overlay_group);
+        this.uiGroup.add_actor(global.overlay_group);
+
         global.stage.add_child(this.uiGroup);
 
         this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',